const root ={
    val:'A',
    left:{
        val:'B',
        left:{
            val:'D'
        },
        right:{
            val:'E'
        }
    },
    right:{
        val:'C',
        left:{
            val:'F'
        },
    }
}

var levelOrder = function (root) {
  const queue = []
  queue.push(root)
  const res = []

  while (queue.length) {
    const arr = []
    const len = queue.length

    for (let i = 0; i < len; i++) {
      const top = queue.shift()
      arr.push(top.val)

      if (top.left) {
        queue.push(top.left)
      }
      if (top.right) {
        queue.push(top.right)
      }
    }

    res.push(arr)

  }

  return res
}

//代码随想录
// var levelOrder = function(root) {
//     //二叉树的层序遍历
//     let res=[],queue=[];
//     queue.push(root);
//     if(root===null){
//         return res;
//     }
//     while(queue.length!==0){
//         // 记录当前层级节点数
//         let length=queue.length;
//         //存放每一层的节点 
//         let curLevel=[];
//         for(let i=0;i<length;i++){
//             let node=queue.shift();
//             curLevel.push(node.val);
//             // 存放当前层下一层的节点
//             node.left&&queue.push(node.left);
//             node.right&&queue.push(node.right);
//         }
//         //把每一层的结果放到结果数组
//         res.push(curLevel);
//     }
//     return res;
// };